package top.jacktgq.utils;

import java.util.concurrent.TimeUnit;
/**
 * 
 * @Title: Sleeper.java 
 * @Package top.jacktgq.utils 
 * @Description: 线程睡眠工具类
 * @author CandyWall   
 * @date 2020年11月4日 上午12:55:38 
 * @version V1.0
 */
public class Sleeper {
	/**
	 * @param timeout	:默认线程睡眠时间单位是秒
	 */
	public static void sleep(long timeout) {
		sleep(timeout, TimeUnit.SECONDS);
	}
	
	/**
	 * 
	 * @param timeout	：线程睡眠的时间
	 * @param unit		：枚举类型，线程睡眠的单位，可以传入纳秒，微秒，毫秒，秒，分钟，小时，天
	 */
	public static void sleep(long timeout, TimeUnit unit) {
		try {
			/*switch (unit) {
				case NANOSECONDS: TimeUnit.NANOSECONDS.sleep(timeout); break;
				case MICROSECONDS: TimeUnit.MICROSECONDS.sleep(timeout); break;
				case MILLISECONDS: TimeUnit.MILLISECONDS.sleep(timeout); break;
				case SECONDS: TimeUnit.SECONDS.sleep(timeout); break;
				case MINUTES: TimeUnit.MINUTES.sleep(timeout); break;
				case HOURS: TimeUnit.HOURS.sleep(timeout); break;
				case DAYS: TimeUnit.DAYS.sleep(timeout);
			}*/
			//将等待时间统一转换成纳秒
			long nanos = unit.toNanos(timeout);
			TimeUnit.NANOSECONDS.sleep(nanos);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}
